package seqlist.oj;

public class Num234 {
//    public boolean isPalindrome(ListNode A) {
//        ListNode middle = middleNode(A);
//        ListNode B = reverseList(middle);
//        while (A != null && B!=null) {
//          if(A.val!=B.val) {
//              return false;
//          }
//          A=A.next;
//          B=B.next;
//        }
//        return true;
//    }
        public boolean isPalindrome(ListNode head) {
        //创建一个新链表，新链表是原链表的倒置
        ListNode newHead=reverseList(head);
        while(head!=null){
            if(head.val!=newHead.val){
                return false;
            }
            head=head.next;
            newHead=newHead.next;
        }
      return true;
    }

    public ListNode reverseList(ListNode head){
        ListNode newHead=null;
        while(head!=null){
            ListNode node=new ListNode(head.val);
            node.next=newHead;
            newHead=node;
            head=head.next;
        }
        return newHead;
    }
//    public ListNode middleNode(ListNode head){
//        if(head==null){
//            return null;
//        }
//        ListNode low=head, fast=head;
//        while (fast!=null && fast.next!=null){
//            low=low.next;
//            fast=fast.next.next;
//        }
//        return low;
//    }
}
